package org.ccay.security.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ java.lang.annotation.ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface SecurityResource {
	public static final String ATTR_CODE = "code";
	
	public static final String ATTR_NAME = "name";

	public static final String ATTR_DESC = "desc";
	
	/**
	 * 机器可读册权限编码。多个权限可使用相同的code进行可以进行统一管理
	 * @return
	 */
	public abstract String code();
	
	/**
	 * 人工可读的权限信息，可通过字符<code>|</code>进行分组
	 * 同一个code对应的name必须相同，只有一个配置了name;
	 * 例如： 系统管理|安全管理|用户管理
	 * @return
	 */
	public abstract String name() default "";
	
	public abstract String desc() default "";
	
}
